home *** CD-ROM | disk | FTP | other *** search
/ Champak 33 / Volume 33 - JOGO DISK .iso / Games / shoot_em_in.swf / scripts / DefineSprite_136 / frame_37 / DoAction.as
Text File  |  2007-01-15  |  7KB  |  271 lines

  1. lWindDiv = vyball - 17.9;
  2. if(lWindDiv < 0)
  3. {
  4.    lWindDiv = 0;
  5. }
  6. else if(2 < lWindDiv)
  7. {
  8.    lWindDiv = 2;
  9. }
  10. lWindDiv = (2 - lWindDiv) / 2;
  11. vXWind2 = vXWind * lWindDiv;
  12. vZWind2 = vZWind * lWindDiv;
  13. if(lbut != 1)
  14. {
  15.    vXVector += vXWind2;
  16.    vZVector += vZWind2;
  17. }
  18. vXBall += vXVector - vXVectorEffect;
  19. vYBall += vYVector;
  20. vZBall += vZVector;
  21. vXVectorEffect /= vDivEffect;
  22. if(vYBall < _YFloor)
  23. {
  24.    vYVector += vGravity;
  25. }
  26. if(_YFloor < vYball)
  27. {
  28.    vYVector = - vYVector;
  29.    vYball = _Yfloor;
  30.    vXVector /= vDiv;
  31.    vYVector /= vDiv;
  32.    vZVector /= vDiv;
  33.    _parent.mcsounds.gotoAndPlay("hitfloor");
  34. }
  35. lLenght = vXVector * vXVector + vYVector * vYVector + vZVector * vZVector;
  36. if(lLenght < 0.001 and _YFloor - 0.001 < vYBall)
  37. {
  38.    gotoAndStop(44);
  39. }
  40. if(50 - (ldball + ldpot / 2) < vZBall and vZBall < 50 + (ldball + ldpot / 2))
  41. {
  42.    collisions();
  43. }
  44. if(50 < vZBall and ltest != 1)
  45. {
  46.    ltest = 1;
  47.    if(lcol1 != 3 and lcol2 != 3 and lcol3 != 3)
  48.    {
  49.       lxb = vxball;
  50.       lyb = vyball;
  51.       lzb = vzball;
  52.       vXBall -= (vXVector - vXVectorEffect) / 2;
  53.       vYBall -= vYVector / 2;
  54.       vZBall -= vZVector / 2;
  55.       collisions();
  56.       if(lcol1 != 3 and lcol2 != 3 and lcol3 != 3)
  57.       {
  58.          vXBall = lxb;
  59.          vYBall = lyb;
  60.          vZBall = lzb;
  61.       }
  62.    }
  63. }
  64. var i = 1;
  65. while(vNBWall >= i)
  66. {
  67.    name = eval("_parent.mcWall" + i);
  68.    if(vZBall < vzWall[i] + ldwall + ldball and vzWall[i] - (ldwall + ldball) < vZBall and vTestWall[i] != 1)
  69.    {
  70.       lxb = vXBall;
  71.       lzb = vZBall;
  72.       lDistTrans = Math.sqrt((vxWall[i] - lxb) * (vxWall[i] - lxb) + (vzWall[i] - lzb) * (vzWall[i] - lzb));
  73.       if(ldball / 2 + ldwall / 2 >= lDistTrans and _YFloor - lplayerHeight < vYball)
  74.       {
  75.          name.gotoAndStop("stop");
  76.          vxslope = lxb - vxWall[i];
  77.          vzslope = lzb - vzWall[i];
  78.          vXBall = vxWall[i] + vxslope / lDistTrans * (ldball / 2 + ldwall / 2);
  79.          vZBall = vzWall[i] + vzslope / lDistTrans * (ldball / 2 + ldwall / 2);
  80.          lLenght = Math.sqrt(vxslope * vxslope + vzslope * vzslope);
  81.          vxslope /= lLenght;
  82.          vzslope /= lLenght;
  83.          lambda = vXVector * vxslope + vZVector * vzslope;
  84.          vXVector = 2 * lambda * vxslope - vXVector;
  85.          vZVector = 2 * lambda * vzslope - vZVector;
  86.          vXVector /= vDiv;
  87.          vZVector /= vDiv;
  88.          vTestWall[i] = 1;
  89.          _parent.mcsounds.gotoAndPlay("hitwall");
  90.       }
  91.    }
  92.    i++;
  93. }
  94. if(30 < vZBall)
  95. {
  96.    lz1 = vzgoal - vZBallStart;
  97.    lz2 = vzgoal - vZBall;
  98.    lx2 = lz2 * vXBallStart / lz1;
  99.    lxball2 = vXBall - lx2;
  100.    lyball2 = vYBall;
  101.    lzball2 = vzgoal;
  102. }
  103. if(40 + int((vmaxframes - vnbframes2) / 1.5) < vZBall and vTestgoal != 1)
  104. {
  105.    if(lxball2 < vxgoal - 1.22)
  106.    {
  107.       if(lyball2 < _yfloor - 1.5)
  108.       {
  109.          _parent.mcgoal.gotoAndStop("jumpleft");
  110.       }
  111.       else
  112.       {
  113.          _parent.mcgoal.gotoAndStop("diveleft");
  114.       }
  115.       lGoalSide = 1;
  116.    }
  117.    else if(vxgoal + 1.22 < lxball2)
  118.    {
  119.       if(lyball2 < _yfloor - 1.5)
  120.       {
  121.          _parent.mcgoal.gotoAndStop("jumpright");
  122.       }
  123.       else
  124.       {
  125.          _parent.mcgoal.gotoAndStop("diveright");
  126.       }
  127.       lGoalSide = 2;
  128.    }
  129.    else
  130.    {
  131.       if(lyball2 < _yfloor - 1.5)
  132.       {
  133.          _parent.mcgoal.gotoAndStop("jump");
  134.       }
  135.       else
  136.       {
  137.          _parent.mcgoal.gotoAndStop("front");
  138.       }
  139.       lGoalSide = 3;
  140.    }
  141.    vTestGoal = 1;
  142. }
  143. if(vTestgoal2 == 50 and lGoalSide != 2 and lGoalSide != 1 or lGoalSide != 3 and lGoalSide != 2 and lGoalSide != 1 and 50 < vzball)
  144. {
  145.    _parent.mcgoal.gotoAndStop("front");
  146. }
  147. if(35 < vZBall and 50 >= vZBall and vTestgoal2 < 60 or 50 < vZBall and vTestgoal2 < 20)
  148. {
  149.    if(vTestgoal2 < 1)
  150.    {
  151.       _parent.mcgoal.gotoAndStop("walk");
  152.    }
  153.    if(vxgoal < lxball2 and lGoalSide != 1)
  154.    {
  155.       if(lxball2 - vxgoal < 0.1)
  156.       {
  157.          vxgoal += lxball2 - vxgoal;
  158.       }
  159.       else
  160.       {
  161.          vxgoal += 0.1;
  162.       }
  163.    }
  164.    else if(lxball2 < vxgoal and lGoalSide != 2)
  165.    {
  166.       if(vxgoal - lxball2 < 0.1)
  167.       {
  168.          vxgoal -= vxgoal - lxball2;
  169.       }
  170.       else
  171.       {
  172.          vxgoal -= 0.1;
  173.       }
  174.    }
  175.    v2DPoint = WorldToScreen(vxgoal,vygoal,vzgoal,_Focale,_scale,_xoffset,_yoffset);
  176.    _parent.mcgoal._x = v2DPoint.x;
  177.    _parent.mcgoal._y = v2DPoint.y;
  178.    vTestgoal2++;
  179. }
  180. if(vzgoal - ldball * 2 < vZBall and vZBall < vzgoal + ldball * 2 and vTestgoal3 == 0)
  181. {
  182.    v2DPoint = WorldToScreen(lxball2,lyball2,lzball2,_Focale,_scale,_xoffset,_yoffset);
  183.    lHitTest = _parent.mcgoal.mccollision.hitTest(v2DPoint.x,v2DPoint.y,true);
  184.    if(lHitTest)
  185.    {
  186.       vZVector = - vZVector;
  187.       vectorDivGoal();
  188.       vTestgoal3 = 1;
  189.       _parent.mcsounds.gotoAndPlay("hitgoal");
  190.    }
  191. }
  192. if(50 + ldball / 2 < vZBall and ltestBut < 2)
  193. {
  194.    if(lbut != 1)
  195.    {
  196.       if(-3.66 + (ldball / 2 + ldpot / 2) < vXBall and vXBall < 3.66 - (ldball / 2 + ldpot / 2))
  197.       {
  198.          if(_YFloor - 2.44 + (ldball / 2 + ldpot / 2) < vYBall)
  199.          {
  200.             lbut = 1;
  201.             _parent.mcbut.gotoAndStop("but");
  202.             _parent.mcsounds.gotoAndPlay("but");
  203.          }
  204.       }
  205.    }
  206.    if(lbut != 1)
  207.    {
  208.       if(-3.66 < vXBall - (vXVector - vXVectorEffect) / 2 and vXBall - (vXVector - vXVectorEffect) / 2 < 3.66)
  209.       {
  210.          if(_YFloor - 2.44 < vYBall - vYVector / 2)
  211.          {
  212.             vXBall -= (vXVector - vXVectorEffect) / 2;
  213.             vYBall -= vYVector / 2;
  214.             vZBall -= vZVector / 2;
  215.             lbut = 1;
  216.             _parent.mcbut.gotoAndStop("but");
  217.             _parent.mcsounds.gotoAndPlay("but");
  218.          }
  219.       }
  220.    }
  221.    ltestBut++;
  222. }
  223. if(lbut == 1 and 50 < vZBall)
  224. {
  225.    if(vXBall < -3.66 and vXVector < 0)
  226.    {
  227.       vXBall = -3.66;
  228.       vXVector = - vXVector;
  229.       VectorDiv();
  230.    }
  231.    if(3.66 < vXBall and 0 < vXVector)
  232.    {
  233.       vXBall = 3.66;
  234.       vXVector = - vXVector;
  235.       vectorDiv();
  236.    }
  237.    if(vYBall < _YFloor - 2.44 and vYVector < 0)
  238.    {
  239.       vYBall = _YFloor - 2.44;
  240.       vYVector = - vYVector;
  241.       vectorDiv();
  242.    }
  243.    if(52 < vZBall and 0 < vZVector)
  244.    {
  245.       vZBall = 52;
  246.       vZVector = - vZVector;
  247.       vectorDiv();
  248.    }
  249. }
  250. if(lbut != 1 and 50 < vZBall)
  251. {
  252.    if(60 < vZBall and 0 < vZVector)
  253.    {
  254.       vZBall = 60;
  255.       vZVector = - vZVector;
  256.       vectorDivGoal();
  257.       _parent.mcsounds.gotoAndPlay("hitwall");
  258.    }
  259. }
  260. v2DPoint = WorldToScreen(vXBall,vYBall,vZBall,_Focale,_scale,_xoffset,_yoffset);
  261. _parent.mcball._x = v2DPoint.x;
  262. _parent.mcball._y = v2DPoint.y;
  263. _parent.mcball._xscale = v2DPoint.z * 2 * ldball;
  264. _parent.mcball._yscale = v2DPoint.z * 2 * ldball;
  265. v2DPoint = WorldToScreen(vXBall,_Yfloor + 0.05,vZBall,_Focale,_scale,_xoffset,_yoffset);
  266. _parent.mcShadow._x = v2DPoint.x;
  267. _parent.mcShadow._y = v2DPoint.y;
  268. _parent.mcShadow._xscale = v2DPoint.z * 4 * ldball;
  269. _parent.mcShadow._yscale = v2DPoint.z * 2 * ldball;
  270. prevFrame();
  271.